/**
 * 手相分析服务
 * 处理手相分析相关的API调用
 */

import api from './api';

/**
 * 上传手部图片并进行手相分析
 * @param {File} imageFile - 手部图片文件
 * @param {string} handType - 手部类型 ('left' | 'right')
 * @returns {Promise} 分析结果Promise
 */
export async function analyzePalm(imageFile, handType) {
  // 首先上传图片文件
  const formData = new FormData();
  formData.append('image', imageFile);
  
  // 上传图片
  const uploadResponse = await fetch(`${api.baseUrl}/upload/image`, {
    method: 'POST',
    body: formData,
    headers: {
      ...api.getAuthHeaders()
    }
  });
  
  const uploadData = await uploadResponse.json();
  
  if (!uploadResponse.ok) {
    throw new Error(uploadData.message || '图片上传失败');
  }
  
  // 使用上传后的图片URL进行手相分析
  const analysisResponse = await api.request('/palm-analysis/analyze', {
    method: 'POST',
    body: JSON.stringify({
      imageUrl: uploadData.imageUrl,
      handType: handType
    })
  });
  
  return analysisResponse;
}

/**
 * 获取手相分析结果
 * @param {string} id - 分析ID
 * @returns {Promise} 分析结果Promise
 */
export async function getPalmAnalysis(id) {
  return api.request(`/palm-analysis/${id}`, {
    method: 'GET'
  });
}

/**
 * 保存手相分析结果
 * @param {Object} analysisData - 分析数据
 * @returns {Promise} 保存结果Promise
 */
export async function savePalmAnalysis(analysisData) {
  return api.request('/palm-analysis/save', {
    method: 'POST',
    body: JSON.stringify({
      analysisData
    })
  });
}

/**
 * 获取用户的手相分析历史记录
 * @returns {Promise} 历史记录Promise
 */
export async function getUserPalmAnalyses() {
  return api.request('/palm-analysis/history', {
    method: 'GET'
  });
}